//package com.cu;
//
//import java.util.concurrent.Executor;
//import java.util.concurrent.Executors;
//import java.util.concurrent.atomic.AtomicInteger;
//
//public class ThreadTest {
//
//    public static void main(String[] args) {
//        visibleThreadTest();
//
//        commonThreadTest();
//    }
//
//    public static void visibleThreadTest() {
//        long time = System.currentTimeMillis();
//        AtomicInteger i = new AtomicInteger(0);
//        Executor executor = Executors.newVirtualThreadPerTaskExecutor();
//
//        for (int l = 0; l < 100000; l++) {
//            executor.execute(Thread.startVirtualThread(new Runnable() {
//                @Override
//                public void run() {
//                    i.addAndGet(1);
//                }
//            }));
//        }
//        System.out.println(i.get());
//        System.out.println("visible use time:" + (System.currentTimeMillis() - time));
//    }
//
//
//    public static void commonThreadTest() {
//        long time = System.currentTimeMillis();
//        AtomicInteger i = new AtomicInteger(0);
//        Executor executor = Executors.newFixedThreadPool(20);
//
//        for (int l = 0; l < 100000; l++) {
//            executor.execute(new Thread(new Runnable() {
//                @Override
//                public void run() {
//                    i.addAndGet(1);
//                }
//            }));
//        }
//        System.out.println(i.get());
//        System.out.println("common use time:" + (System.currentTimeMillis() - time));
//    }
//}
